package top.wfzzq.ds.sort;

import java.util.Comparator;

/**
 * 针对学生类的比较器
 * 
 * @author wanghui
 *
 */
public class StudentComparator implements Comparator<Student> {
	private int mode = 1;

	public StudentComparator() {

	}

	public StudentComparator(int mode) {
		this.mode = mode;
	}

	@Override
	public int compare(Student s1, Student s2) {
		// 比较两个对象的方法，返回值是int数，
		// 如果s1在s2的前面，返回小于0的数
		// 如果s1在s2的后面，返回大于0的数
		// 否则返回0
		if (s1 == null && s2 == null) {
			// 两个都是null，直接返回0
			return 0;

		}
		if (s1 == null) {
			// s2 null值也不用判断，在非空的后面
			return -1;
		}
		if (s2 == null) {
			// s2 null值也不用判断，在非空的后面
			return 1;
		}
		if (mode==1) {
			// 否者对比sid的次序决定
			return s1.getSid() - s2.getSid();
		}
		// 對比sname的次序决
		if (s1.getName() == null && s2.getName() == null) {
			return 0;
		}
		if (s1.getName() == null) {
			return -1;
		}
		if (s2.getName() == null) {
			return 1;
		}
		// 返回字符串比对的结果
		return s1.getName().compareTo(s2.getName());
	}

}
